home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Languguage OS 2
/
Languguage OS II Version 10-94 (Knowledge Media)(1994).ISO
/
language
/
parallax
/
more_exa.tar
/
more
/
X
/
xsort.p
< prev
next >
Wrap
Text File
|
1992-10-26
|
1KB
|
50 lines
SYSTEM sort;
(* Odd-Even Transposition Sorting (parallel bubble-sort) *)
(* With X Window Visualization | Braunl, 1992 *)
CONST n = 128;
CONFIGURATION list [1..n];
CONNECTION left : list[i] -> list [i-1].right;
right: list[i] -> list [i+1].left;
SCALAR k, win_num: INTEGER;
ch : CHAR;
VECTOR val,r,l: INTEGER;
swap : BOOLEAN;
BEGIN
PARALLEL
WriteString('Init with random values'); WriteLn;
val := VIRandom() MOD 256;
win_num := OpenAbswindow(n,n);
FOR k:=1 TO n DO
PROPAGATE.right(val,l);
PROPAGATE.left(val,r);
swap := FALSE;
IF ODD(k) THEN
IF ODD(DIM1) AND (r<val) THEN
val := r;
swap := TRUE
END
ELSE
IF EVEN(DIM1) AND (r<val) THEN
val := r;
swap := TRUE
END;
END;
PROPAGATE.right(swap);
IF swap AND (id_no > 1) THEN val:=l END;
SetColor(COLOR(val, val, val));
SetPixel(DIM1, k);
END;
ENDPARALLEL;
WriteString("Press RETURN for termination"); WriteLn;
Read(ch);
CloseWindow(win_num);
END sort.